package com.examples.properties;

import com.google.inject.Guice;
import com.google.inject.Inject;
import com.google.inject.name.Named;
import com.google.inject.name.Names;
import lombok.val;

import java.util.Properties;

/**
 * 除了可以绑定基本类型外，还可以绑定一个Properties到Guice中，
 * 当然了，由于Properties本质上时一个Map<String,String>，
 * 因此Guice也允许绑定一个Map<String,String>。
 */
public class PropertiesInjectDemo {
    @Inject
    @Named("web")
    private String web;

    public static void main(String[] args) {
        Properties properties= new Properties();
        properties.setProperty("web", "www.imxylz.cn");
        val p = Guice.createInjector(binder ->
                {
                    Names.bindProperties(binder, properties);
                }
        ).getInstance(PropertiesInjectDemo.class);
        System.out.println(p.web);
    }
}
